As computers have become more complex and powerful, the manner in which end users or operators interface with computers has grown increasingly important. Early computers relied on switches, lights, and/or punch cards that required an end user to interact essentially in the computers' native binary languages. Eventually, video displays were developed that enabled end users to interact with computers through textual information and commands. Another significant step in this evolution was the development of graphical user interfaces (GUIs), which permitted end users to interact with computers through the more intuitive operations of "pointing and clicking" on graphical display elements with a pointer controlled by a mouse or other user interface device. For example, to print a file, an end user in a text-based system might be required to enter a command such as "print &lt;filename&gt;". With a graphical user interface, a similar operation might be accomplished by merely moving a pointer with a mouse and clicking on an graphical icon showing a graphic representation of a printer.
Information is often presented to an end user in a graphical user interface component known as a window. A window may be used to display a relatively large document with only a portion of the document shown at any given time. Scroll bars on the window may then be used to navigate through the document--that is, to scroll through the information in a document so that a different portion of the document is displayed in the window. A scroll bar itself has a number of controls. For example, an end user may control a slider (or puck) on a scroll bar by clicking and holding down a mouse button over the slider, and then moving the pointer to scroll to a specific location in the document. An end user may also click on arrow buttons found at each end of a scroll bar to scroll a document line-by-line. Also, an end user may click on regions in the scroll bar between the slider and the buttons to scroll the document page-by-page or screen-by-screen.
Windowing technology is used by a large variety of computer software applications to display all or portions of records, documents and other information. For example, windows may be used by browser or viewer applications to view linked records such as hypertext documents. Hypertext documents may be found, for example, on the Internet, as well as in many private networks and in individual computer systems. Hypertext documents are linked together via embedded hypertext links that an end user can click on to either jump to different documents, or to jump to different locations within the same document. A wide variety of information formats such as text, graphics, video, sound, and animation may be integrated into these hypertext documents. Other common usages of windowing technology include word processors, database applications, spreadsheets, graphic design applications, and many others too numerous to mention.
It has been found that navigation using a scroll bar is often problematic, particularly when a document being viewed in a window has a boundary that initiates a predetermined action whenever the boundary is crossed during scrolling. User manipulation of a scroll bar with a mouse or other user input device is often not very precise, typically due to the inherent difficulties in manually manipulating a mechanical device such as a mouse. Therefore, it is sometimes possible for an end user to inadvertently cross a boundary in a document, resulting in accidental initiation of the predetermined action specified for the boundary. Some predetermined actions may be quite complex and time-consuming, and therefore may adversely impact an end user's productivity.
As one example, word processors typically include hard or soft page breaks within documents to define the breaks between pages when they are printed. In addition, many word processors provide WYSIWYG ("what you see is what you get") editing, where the information shown on a computer display closely matches that of the printed output. Many such word processors provide a "page" view mode, where the boundaries of a page are shown, along with any whitespace defined between the page boundaries and the margins set for the page. Whenever a page break is encountered when scrolling in page mode, a predetermined action of jumping across the whitespace between the end of one page and the beginning of the next is performed by the word processor.
Due to this additional action performed across page breaks, it has been found that it is difficult, particularly with larger documents, to drag a scroll bar slider and accurately deposit a cursor near the top or bottom of a page without inadvertently jumping to the adjacent page. Any small "overshoot" of the slider by the end user may result in a comparatively large scroll of the document across the page boundary. This problem is even more pronounced if the page boundary is defined by a hard page break that results in a page that is only partially filled with information and separated from the next page by significant whitespace. In fact, in some instances where a page has only a few lines, a user may inadvertently scroll completely past the page to the next page without realizing that he or she has done so.
In other applications, dragging of a slider may not be tracked by the contents of the window, so the end user has no visual feedback of where movement of a slider has scrolled a document to until after the slider is released. Thus, in either event, it can be difficult at times to locate specific locations in a document using a scroll bar.
Therefore, a significant need exists for an improved manner of navigating with a scroll bar in a graphical user interface environment.